1. Field of the Invention
The present invention generally relates to the management of a multi-user/multi-tasking computer environment and, more particularly, to a procedure which allows users of a computer system comprising a plurality of computers connected in a local area network to share both file resources and application programs on the local area network without modification of existing application programs which were designed to operate in a non-network environment.
2. Description of the Prior Art
The networking of individual computers to allow an application program and file resources to be accessed by users of the computers has become of paramount importance in the data processing industry. In particular, business entities, from large corporations to relatively small companies, have demanded a way of allowing users of personal computers installed in their offices to share both application programs and file resources on a network. The hardware capability of accomplishing this has been provided in what is known as a local area network (LAN) of which there are several architectures. As but one example, the IBM Corporation has made commercially available the PC Network which comprises an adapter card for insertion into each personal computer connected in a network as well as other peripheral interconnection apparatus.
The demand of the customers of application programs requires the installation of multiple identical software configurations in a customer-managed environment; e.g., secretarial, business professional, and engineering or scientific systems. In many instances, this has resulted in a complete turnabout in the techniques which the personal computer software industry has used for a number of years; that is, application programs packaged in individual boxes and a license to use that program on a single computer or on only one computer at a time. The vast majority of commercially available application programs (as well as operating systems) are marketed today in this manner. With the advent of the demand for networking, a need has arisen to allow such existing commercially available programs to operate on a local area network. This dilemma has previously had but one solution and that was the redesign of the application programs to operate on a network. This solution is not only expensive, it has a ripple effect. Once redesigned to run on a network, the application programs must then be redistributed and reinstalled on end user equipment. This procedure generally requires the licensees or owners of copies of application programs to dispose of the non-network original versions either by destruction of the copies or return of the copies to the publisher.
The industry also faces the problem of how to insure recovery of its cost plus a profit from the application programs which it develops. The single copy license or price of an application program is thought to have been relatively effective so that the price of a program can be a direct function of a reasonable estimate of the number of users. However, the introduction of local area networks which would allow multiple users to use the same application program creates a distinct problem with respect to pricing. The number of such users may be relatively unlimited. Indeed, new technology of higher speed microprocessors and memory, which has driven the development of programming functions executing in an interdependent fashion in multiple processors, is making it feasible for more and more users to share the same program and data files. The practical limit of the number of users who may access a single program and associated data files is generally dependent on the speed of the access. There comes a point when the number of concurrent users becomes such that an individual cannot access the program or the data files in a reasonable period of time. However, as technology improves the processors and storage devices, speed of access and computing time is improved, and the number of concurrent users may increase.
The subject invention was conceived as a result of having a large number of computer software application programs which were designed to execute in a single user environment and needed to migrate to a multi-user/multi-tasking operating environment. The original application programs made no provisions for file sharing or record locking as was later required by changing times and computer interconnected environments. In the past, the migration of such single user environment application programs was achieved only at the investment of great time and money to rewrite the application programs for the multi-user/multi-tasking environment. Moreover, this approach was not practical in this case because existing application programs could not be changed as the base product had already been sold to and installed by existing end users who wanted to grow into a network environment at a minimal cost. If the traditional approach had been taken, over 400 programs would have required source program modifications to accomodate the new environment. The language compiler to which the original programs were written did not support file sharing or record locking, so any attempt to modify the application programs to support these features would require compiler changes or adhoc assembler calls to accomplish the file support required. A further complication to the task was the fact that, due to the large number of application programs, no one person nor computer system understood how each program was using the data files accessed by the programs. Some of the application programs required temporary work files. When the same program was running on two different systems using a temporary file with a specific name, the result would be far from acceptable. In addition, the application programs were structured in programs and groups of programs whose process interlocking needed to be controlled.
The network used for implementation was the IBM Local Area Network (LAN) for the IBM Personal Computer. It supports two basic types of logical systems: server systems which share their devices with other computers on the network, and remote systems which use devices attached to the server systems. The server systems generally provided access to their disk files and printers to remote systems. The caveat to this protocol was when files were concurrently required by other systems, the default was non-share; i.e., only one computer system and its application program at a time could open a non-share file. When multiple application programs across multiple systems required file access, a special parameter was required by the requesting program indicating shared file usage.
Among the problems posed by the migration from a single user environment to a network environment was that the network afforded users the ability to illegally copy application programs and their appropriate control files to remote systems. Because it normally took too long to load programs across the network, users would make copies trying to increase the overall performance of their network. While the application programs would run faster, the programs would get out of control beacuse their control files would be duplicated across the network.
Furthermore, it is desirable that the transition for existing users from a non-network environment to a network environment be smooth and transparent; i.e., require minimal retraining and adjustment to the new environment. It is also desirable that, once a user has crossed the bridge to a network environment, they should still be able to run stand-alone application programs in a non-network environment or mode.